home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
emulator
/
zxam spectrum
/
zxam_rexx
/
español
/
batchconvert.zxam
next >
Wrap
Text File
|
1995-07-31
|
4KB
|
131 lines
/* este script hace conversión en bloque a un formato dado, o sea, coje una */
/* serie de ficheros que nosotros seleccionamos desde un requester de */
/* ficheros y los convierte al formato que le hemos pedido */
/* comprobamos si el emulador está presente */
address command
if ~show(ports,ZXAM_REXX) then do
requestchoice '>nil: title "ZXAM Script error..." body "No encuentro el puerto del emulador!!" gadgets "AARGH!"'
exit
end
/* Almacenar el estado inicial del emulador */
running=zxamactrun() /* 1=en marcha */
zxamstop() /* lo paramos */
/* antiguos parametros de la ventana */
oldname=zxamactname()
oldformat=zxamactformat()
oldsaveformat=zxamactsaveformat()
/* pedimos los ficheros a convertir */
'requestfile >t:zxamconvert.tmp "'zxamactloadpath()'" title "Elige ficheros a convertir..." pattern "'zxamactpattern()'" multiselect'
names=zxampploadfile('t:zxamconvert.tmp')
names=left(names,length(names)-1) /* eliminamos el LF */
/* pedimos el directorio destino */
'requestfile >t:zxamconvert.tmp "'zxamactsavepath()'" drawersonly savemode'
destdrawer=zxampploadfile('t:zxamconvert.tmp')
destdrawer=strip(left(destdrawer,length(destdrawer)-1),'B','"') /* eliminamos el LF y las comillas */
/* pedimos el formato destino */
requestchoice '>t:zxamconvert.tmp "ZXAM convert..."' '"¿Que formato quieres?"' GADGETS "PC|PC_PP|MIRAGE|MIRAGE_PP|CANCEL"
destformat=zxampploadfile('t:zxamconvert.tmp')
destformat=left(destformat,length(destformat)-1) /* eliminamos el LF */
if names='' then exit
if destformat=0 then exit /* pulsado CANCEL */
if destformat=1 then do
destextension='.SP'
destformname='pc'
crunched=0
end
if destformat=2 then do
destextension='.SP'
destformname='pc'
crunched=1
end
if destformat=3 then do
destextension='.mirage'
destformname='mirage'
crunched=0
end
if destformat=4 then do
destextension='.mirage'
destformname='mirage'
crunched=1
end
ZXAMSaveFormat(destformname) /* formato destino */
ZXAMEnableAbort() /* activa gadget Abort ARexx */
/* damos por supuesto que requestfile SIEMPRE entrega los names */
/* en una cadena, entre comillas y con UN espacio entre ellos */
/* en este bucle nos encargamos de sacar los names de los */
/* ficheros y convertirlos */
/* debemos quitarles la extensión y ponerles la corrrespondiente */
/* al formato destino */
do forever
name=strip(left(names,pos('"',names,2)),'B','"') /* sacamos el primer nombre */
nameonly=zxamfilepart(name)
if ZXAMReadAbort() then signal cleanup
/* procesamos el fichero */
zxamnameformat('Cargando "'nameonly'"','Espera...')
block=zxampploadfile(name)
origformat=zxamparseloaded(block)
namenoext=nameonly
if lastpos('.',namenoext)~=0 then namenoext=left(namenoext,lastpos('.',namenoext)-1)
if origformat~='' then do
block=zxamparsetosave()
if crunched then
do
zxamnameformat('Comprimiendo "'nameonly'"','Espera...')
zxamppsavefile(zxamjoinpathname(destdrawer,namenoext)destextension,block)
end
else
do
zxamnameformat('Salvando "'nameonly'"','Espera...')
/* abrimos el fichero */
if ~open('fichero',zxamjoinpathname(destdrawer,namenoext)destextension,'W') then signal cleanup
/* escribimos el snapshot al fichero */
dummy=writech('fichero',block)
dummy=close('fichero')
end
end
if pos('"',names,2)=length(names) then signal cleanup /* fin de lista de nombres */
names=right(names,length(names)-(length(name)+3))
end
cleanup:
if oldname='' then
zxamclearnameformat()
else
zxamnameformat(oldname,oldformat)
zxamsaveformat(oldsaveformat)
/* dejar el emulador como estaba */
if running=1 then zxamrun()
exit